<!DOCTYPE html>
<html lang="" xml:lang="">
<head>

  <meta charset="utf-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <title>Chapter 5 Applications of Venn, Euler and Upset plot | Venn Diagram cookbook in R</title>
  <meta name="description" content="How to draw Venn diagram with R packages." />
  <meta name="generator" content="bookdown 0.21 and GitBook 2.6.7" />

  <meta property="og:title" content="Chapter 5 Applications of Venn, Euler and Upset plot | Venn Diagram cookbook in R" />
  <meta property="og:type" content="book" />
  
  
  <meta property="og:description" content="How to draw Venn diagram with R packages." />
  

  <meta name="twitter:card" content="summary" />
  <meta name="twitter:title" content="Chapter 5 Applications of Venn, Euler and Upset plot | Venn Diagram cookbook in R" />
  
  <meta name="twitter:description" content="How to draw Venn diagram with R packages." />
  

<meta name="author" content="Chun-Hui Gao" />


<meta name="date" content="2021-05-11" />

  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <meta name="apple-mobile-web-app-capable" content="yes" />
  <meta name="apple-mobile-web-app-status-bar-style" content="black" />
  
  
<link rel="prev" href="methods.html"/>
<link rel="next" href="conclusion.html"/>
<script src="libs/header-attrs-2.7/header-attrs.js"></script>
<script src="libs/jquery-2.2.3/jquery.min.js"></script>
<link href="libs/gitbook-2.6.7/css/style.css" rel="stylesheet" />
<link href="libs/gitbook-2.6.7/css/plugin-table.css" rel="stylesheet" />
<link href="libs/gitbook-2.6.7/css/plugin-bookdown.css" rel="stylesheet" />
<link href="libs/gitbook-2.6.7/css/plugin-highlight.css" rel="stylesheet" />
<link href="libs/gitbook-2.6.7/css/plugin-search.css" rel="stylesheet" />
<link href="libs/gitbook-2.6.7/css/plugin-fontsettings.css" rel="stylesheet" />
<link href="libs/gitbook-2.6.7/css/plugin-clipboard.css" rel="stylesheet" />









<script src="libs/htmlwidgets-1.5.2/htmlwidgets.js"></script>
<script src="libs/plotly-binding-4.9.2.1/plotly.js"></script>
<script src="libs/typedarray-0.1/typedarray.min.js"></script>
<link href="libs/crosstalk-1.1.0.1/css/crosstalk.css" rel="stylesheet" />
<script src="libs/crosstalk-1.1.0.1/js/crosstalk.min.js"></script>
<link href="libs/plotly-htmlwidgets-css-1.52.2/plotly-htmlwidgets.css" rel="stylesheet" />
<script src="libs/plotly-main-1.52.2/plotly-latest.min.js"></script>


<style type="text/css">
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
  { counter-reset: source-line 0; }
pre.numberSource code > span
  { position: relative; left: -4em; counter-increment: source-line; }
pre.numberSource code > span > a:first-child::before
  { content: counter(source-line);
    position: relative; left: -1em; text-align: right; vertical-align: baseline;
    border: none; display: inline-block;
    -webkit-touch-callout: none; -webkit-user-select: none;
    -khtml-user-select: none; -moz-user-select: none;
    -ms-user-select: none; user-select: none;
    padding: 0 4px; width: 4em;
    color: #aaaaaa;
  }
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa;  padding-left: 4px; }
div.sourceCode
  {   }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #ff0000; font-weight: bold; } /* Alert */
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
code span.at { color: #7d9029; } /* Attribute */
code span.bn { color: #40a070; } /* BaseN */
code span.bu { } /* BuiltIn */
code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
code span.ch { color: #4070a0; } /* Char */
code span.cn { color: #880000; } /* Constant */
code span.co { color: #60a0b0; font-style: italic; } /* Comment */
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
code span.do { color: #ba2121; font-style: italic; } /* Documentation */
code span.dt { color: #902000; } /* DataType */
code span.dv { color: #40a070; } /* DecVal */
code span.er { color: #ff0000; font-weight: bold; } /* Error */
code span.ex { } /* Extension */
code span.fl { color: #40a070; } /* Float */
code span.fu { color: #06287e; } /* Function */
code span.im { } /* Import */
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
code span.kw { color: #007020; font-weight: bold; } /* Keyword */
code span.op { color: #666666; } /* Operator */
code span.ot { color: #007020; } /* Other */
code span.pp { color: #bc7a00; } /* Preprocessor */
code span.sc { color: #4070a0; } /* SpecialChar */
code span.ss { color: #bb6688; } /* SpecialString */
code span.st { color: #4070a0; } /* String */
code span.va { color: #19177c; } /* Variable */
code span.vs { color: #4070a0; } /* VerbatimString */
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
</style>

<link rel="stylesheet" href="style.css" type="text/css" />
</head>

<body>



  <div class="book without-animation with-summary font-size-2 font-family-1" data-basepath=".">

    <div class="book-summary">
      <nav role="navigation">

<ul class="summary">
<li><a href="./">Venn Diagram in R</a></li>

<li class="divider"></li>
<li class="chapter" data-level="1" data-path="index.html"><a href="index.html"><i class="fa fa-check"></i><b>1</b> Preface</a>
<ul>
<li class="chapter" data-level="1.1" data-path="index.html"><a href="index.html#prerequisites"><i class="fa fa-check"></i><b>1.1</b> Prerequisites</a></li>
<li class="chapter" data-level="1.2" data-path="index.html"><a href="index.html#sessioninfo"><i class="fa fa-check"></i><b>1.2</b> Sessioninfo</a></li>
</ul></li>
<li class="chapter" data-level="2" data-path="intro.html"><a href="intro.html"><i class="fa fa-check"></i><b>2</b> Introduction</a>
<ul>
<li class="chapter" data-level="2.1" data-path="intro.html"><a href="intro.html#venndiagram"><i class="fa fa-check"></i><b>2.1</b> <code>VennDiagram</code></a></li>
<li class="chapter" data-level="2.2" data-path="intro.html"><a href="intro.html#colorfulvennplot"><i class="fa fa-check"></i><b>2.2</b> <code>colorfulVennPlot</code></a></li>
<li class="chapter" data-level="2.3" data-path="intro.html"><a href="intro.html#venn"><i class="fa fa-check"></i><b>2.3</b> <code>venn</code></a></li>
<li class="chapter" data-level="2.4" data-path="intro.html"><a href="intro.html#nvennr"><i class="fa fa-check"></i><b>2.4</b> <code>nVennR</code></a></li>
<li class="chapter" data-level="2.5" data-path="intro.html"><a href="intro.html#eulerr"><i class="fa fa-check"></i><b>2.5</b> <code>eulerr</code></a></li>
<li class="chapter" data-level="2.6" data-path="intro.html"><a href="intro.html#venneuler"><i class="fa fa-check"></i><b>2.6</b> <code>venneuler</code></a></li>
<li class="chapter" data-level="2.7" data-path="intro.html"><a href="intro.html#rvenn"><i class="fa fa-check"></i><b>2.7</b> <code>RVenn</code></a></li>
<li class="chapter" data-level="2.8" data-path="intro.html"><a href="intro.html#gplots"><i class="fa fa-check"></i><b>2.8</b> <code>gplots</code></a></li>
<li class="chapter" data-level="2.9" data-path="intro.html"><a href="intro.html#ggvenndiagram"><i class="fa fa-check"></i><b>2.9</b> <code>ggVennDiagram</code></a></li>
<li class="chapter" data-level="2.10" data-path="intro.html"><a href="intro.html#ggvenn"><i class="fa fa-check"></i><b>2.10</b> <code>ggvenn</code></a></li>
</ul></li>
<li class="chapter" data-level="3" data-path="using-ggVennDiagram.html"><a href="using-ggVennDiagram.html"><i class="fa fa-check"></i><b>3</b> Using <code>ggVennDiagram</code></a>
<ul>
<li class="chapter" data-level="3.1" data-path="using-ggVennDiagram.html"><a href="using-ggVennDiagram.html#long-category-names"><i class="fa fa-check"></i><b>3.1</b> long category names</a></li>
<li class="chapter" data-level="3.2" data-path="using-ggVennDiagram.html"><a href="using-ggVennDiagram.html#show-intersection-values"><i class="fa fa-check"></i><b>3.2</b> Show intersection values</a></li>
<li class="chapter" data-level="3.3" data-path="using-ggVennDiagram.html"><a href="using-ggVennDiagram.html#setting-set-label"><i class="fa fa-check"></i><b>3.3</b> Setting set label</a>
<ul>
<li class="chapter" data-level="3.3.1" data-path="using-ggVennDiagram.html"><a href="using-ggVennDiagram.html#color-of-set-label"><i class="fa fa-check"></i><b>3.3.1</b> color of set label</a></li>
<li class="chapter" data-level="3.3.2" data-path="using-ggVennDiagram.html"><a href="using-ggVennDiagram.html#size-of-set-labels"><i class="fa fa-check"></i><b>3.3.2</b> size of set labels</a></li>
</ul></li>
<li class="chapter" data-level="3.4" data-path="using-ggVennDiagram.html"><a href="using-ggVennDiagram.html#setting-region-label"><i class="fa fa-check"></i><b>3.4</b> Setting region label</a>
<ul>
<li class="chapter" data-level="3.4.1" data-path="using-ggVennDiagram.html"><a href="using-ggVennDiagram.html#text-content"><i class="fa fa-check"></i><b>3.4.1</b> text content</a></li>
<li class="chapter" data-level="3.4.2" data-path="using-ggVennDiagram.html"><a href="using-ggVennDiagram.html#percentage-digits"><i class="fa fa-check"></i><b>3.4.2</b> percentage digits</a></li>
<li class="chapter" data-level="3.4.3" data-path="using-ggVennDiagram.html"><a href="using-ggVennDiagram.html#remove-label-background"><i class="fa fa-check"></i><b>3.4.3</b> remove label background</a></li>
<li class="chapter" data-level="3.4.4" data-path="using-ggVennDiagram.html"><a href="using-ggVennDiagram.html#color-and-size"><i class="fa fa-check"></i><b>3.4.4</b> color and size</a></li>
</ul></li>
<li class="chapter" data-level="3.5" data-path="using-ggVennDiagram.html"><a href="using-ggVennDiagram.html#setting-set-edges"><i class="fa fa-check"></i><b>3.5</b> Setting set edges</a></li>
<li class="chapter" data-level="3.6" data-path="using-ggVennDiagram.html"><a href="using-ggVennDiagram.html#changing-palette"><i class="fa fa-check"></i><b>3.6</b> Changing palette</a></li>
<li class="chapter" data-level="3.7" data-path="using-ggVennDiagram.html"><a href="using-ggVennDiagram.html#adding-note"><i class="fa fa-check"></i><b>3.7</b> Adding note</a></li>
<li class="chapter" data-level="3.8" data-path="using-ggVennDiagram.html"><a href="using-ggVennDiagram.html#comprehensive-customization-by-using-helper-functions"><i class="fa fa-check"></i><b>3.8</b> Comprehensive customization by using helper functions</a></li>
</ul></li>
<li class="chapter" data-level="4" data-path="methods.html"><a href="methods.html"><i class="fa fa-check"></i><b>4</b> Methods</a>
<ul>
<li class="chapter" data-level="4.1" data-path="methods.html"><a href="methods.html#predefined-sysdata-in-venn"><i class="fa fa-check"></i><b>4.1</b> Predefined <code>sysdata</code> in <code>venn</code></a></li>
<li class="chapter" data-level="4.2" data-path="methods.html"><a href="methods.html#set-operation-in-rvenn"><i class="fa fa-check"></i><b>4.2</b> Set operation in <code>RVenn</code></a>
<ul>
<li class="chapter" data-level="4.2.1" data-path="methods.html"><a href="methods.html#set-operations-in-rvenn"><i class="fa fa-check"></i><b>4.2.1</b> Set operations in <code>RVenn</code></a></li>
</ul></li>
</ul></li>
<li class="chapter" data-level="5" data-path="applications.html"><a href="applications.html"><i class="fa fa-check"></i><b>5</b> Applications of Venn, Euler and Upset plot</a></li>
<li class="chapter" data-level="6" data-path="conclusion.html"><a href="conclusion.html"><i class="fa fa-check"></i><b>6</b> Conclusion</a></li>
<li class="chapter" data-level="" data-path="references.html"><a href="references.html"><i class="fa fa-check"></i>References</a></li>
<li class="divider"></li>
<li><a href="https://github.com/rstudio/bookdown" target="blank">Published with bookdown</a></li>

</ul>

      </nav>
    </div>

    <div class="book-body">
      <div class="body-inner">
        <div class="book-header" role="navigation">
          <h1>
            <i class="fa fa-circle-o-notch fa-spin"></i><a href="./">Venn Diagram cookbook in R</a>
          </h1>
        </div>

        <div class="page-wrapper" tabindex="-1" role="main">
          <div class="page-inner">

            <section class="normal" id="section-">
<div id="applications" class="section level1" number="5">
<h1><span class="header-section-number">Chapter 5</span> Applications of Venn, Euler and Upset plot</h1>
<p>To date, there are three major methods to display set relationships, Venn diagram,
Euler diagram and UpSet plot <span class="citation">(<a href="references.html#ref-conwayUpSetRPackageVisualization2017" role="doc-biblioref">Conway, Lex, and Gehlenborg 2017</a>)</span>. The UpSet
plot is a state-of-art visualization technique for the quantitative analysis of sets <span class="citation">(<a href="references.html#ref-lexUpSetVisualizationIntersecting2014" role="doc-biblioref">Lex et al. 2014</a>)</span>, and support unlimited number of sets.</p>
<p>When the number of sets is very large, UpSet plot is more reasonable be choose.
By contrast, Venn and Euler are both traditional approaches to finish this task.
Euler diagram is area-proportional, and only show relevant relationships.</p>
<p>Since human eye is less sensitive to area than to color, we believe that using color
filling to show the difference between different regions is more suitable for
ordinary biomedical studies.</p>
<p>For example, <code>ggVennDiagram</code> support Venn plot up to 7 sets.</p>
<div class="sourceCode" id="cb82"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb82-1"><a href="applications.html#cb82-1" aria-hidden="true" tabindex="-1"></a>genes <span class="ot">&lt;-</span> <span class="fu">paste0</span>(<span class="st">&quot;gene&quot;</span>,<span class="dv">1</span><span class="sc">:</span><span class="dv">1000</span>)</span>
<span id="cb82-2"><a href="applications.html#cb82-2" aria-hidden="true" tabindex="-1"></a><span class="fu">set.seed</span>(<span class="dv">20210507</span>)</span>
<span id="cb82-3"><a href="applications.html#cb82-3" aria-hidden="true" tabindex="-1"></a>x <span class="ot">&lt;-</span> <span class="fu">list</span>(<span class="at">A =</span> <span class="fu">sample</span>(genes,<span class="dv">100</span>),</span>
<span id="cb82-4"><a href="applications.html#cb82-4" aria-hidden="true" tabindex="-1"></a>          <span class="at">B =</span> <span class="fu">sample</span>(genes,<span class="dv">150</span>),</span>
<span id="cb82-5"><a href="applications.html#cb82-5" aria-hidden="true" tabindex="-1"></a>          <span class="at">C =</span> <span class="fu">sample</span>(genes,<span class="dv">200</span>),</span>
<span id="cb82-6"><a href="applications.html#cb82-6" aria-hidden="true" tabindex="-1"></a>          <span class="at">D =</span> <span class="fu">sample</span>(genes,<span class="dv">250</span>),</span>
<span id="cb82-7"><a href="applications.html#cb82-7" aria-hidden="true" tabindex="-1"></a>          <span class="at">E =</span> <span class="fu">sample</span>(genes,<span class="dv">300</span>),</span>
<span id="cb82-8"><a href="applications.html#cb82-8" aria-hidden="true" tabindex="-1"></a>          <span class="at">F =</span> <span class="fu">sample</span>(genes,<span class="dv">350</span>),</span>
<span id="cb82-9"><a href="applications.html#cb82-9" aria-hidden="true" tabindex="-1"></a>          <span class="at">G =</span> <span class="fu">sample</span>(genes,<span class="dv">400</span>))</span></code></pre></div>
<p>but if we plot them, we will find it is difficult to separate the border of
different sets in the plot (even with thick edges), especially for 7 and 6 sets Venn.</p>
<div class="sourceCode" id="cb83"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb83-1"><a href="applications.html#cb83-1" aria-hidden="true" tabindex="-1"></a><span class="fu">ggVennDiagram</span>(x, <span class="at">label =</span> <span class="st">&quot;none&quot;</span>, <span class="at">edge_size =</span> <span class="dv">2</span>) <span class="sc">+</span> <span class="fu">scale_fill_distiller</span>(<span class="at">palette =</span> <span class="st">&quot;RdBu&quot;</span>)</span></code></pre></div>
<p><img src="ggVennDiagramPaper_files/figure-html/unnamed-chunk-57-1.png" width="90%" /></p>
<div class="sourceCode" id="cb84"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb84-1"><a href="applications.html#cb84-1" aria-hidden="true" tabindex="-1"></a><span class="fu">ggVennDiagram</span>(x[<span class="dv">1</span><span class="sc">:</span><span class="dv">6</span>], <span class="at">label =</span> <span class="st">&quot;none&quot;</span>, <span class="at">edge_size =</span> <span class="dv">2</span>) <span class="sc">+</span> <span class="fu">scale_fill_distiller</span>(<span class="at">palette =</span> <span class="st">&quot;RdBu&quot;</span>)</span></code></pre></div>
<p><img src="ggVennDiagramPaper_files/figure-html/unnamed-chunk-57-2.png" width="90%" /></p>
<div class="sourceCode" id="cb85"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb85-1"><a href="applications.html#cb85-1" aria-hidden="true" tabindex="-1"></a><span class="fu">ggVennDiagram</span>(x[<span class="dv">1</span><span class="sc">:</span><span class="dv">5</span>], <span class="at">label =</span> <span class="st">&quot;none&quot;</span>, <span class="at">edge_size =</span> <span class="dv">2</span>) <span class="sc">+</span> <span class="fu">scale_fill_distiller</span>(<span class="at">palette =</span> <span class="st">&quot;RdBu&quot;</span>)</span></code></pre></div>
<p><img src="ggVennDiagramPaper_files/figure-html/unnamed-chunk-57-3.png" width="90%" /></p>
<p>By contrast, if we apply this large <code>x</code> to <code>upset()</code>, it will get:</p>
<div class="sourceCode" id="cb86"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb86-1"><a href="applications.html#cb86-1" aria-hidden="true" tabindex="-1"></a><span class="fu">library</span>(UpSetR)</span>
<span id="cb86-2"><a href="applications.html#cb86-2" aria-hidden="true" tabindex="-1"></a><span class="fu">upset</span>(<span class="fu">fromList</span>(x), <span class="at">nsets =</span> <span class="dv">7</span>)</span></code></pre></div>
<p><img src="ggVennDiagramPaper_files/figure-html/unnamed-chunk-58-1.png" width="90%" /></p>
<p>In my opinion, this plot is better to show the intersection values between them.</p>

</div>
<div id="disqus_thread"></div>
<script>
    /**
    *  RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
    *  LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables    */
    /*
    var disqus_config = function () {
    this.page.url = PAGE_URL;  // Replace PAGE_URL with your page's canonical URL variable
    this.page.identifier = PAGE_IDENTIFIER; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
    };
    */
    (function() { // DON'T EDIT BELOW THIS LINE
    var d = document, s = d.createElement('script');
    s.src = 'https://venn-diagram-in-r.disqus.com/embed.js';
    s.setAttribute('data-timestamp', +new Date());
    (d.head || d.body).appendChild(s);
    })();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
            </section>

          </div>
        </div>
      </div>
<a href="methods.html" class="navigation navigation-prev " aria-label="Previous page"><i class="fa fa-angle-left"></i></a>
<a href="conclusion.html" class="navigation navigation-next " aria-label="Next page"><i class="fa fa-angle-right"></i></a>
    </div>
  </div>
<script src="libs/gitbook-2.6.7/js/app.min.js"></script>
<script src="libs/gitbook-2.6.7/js/lunr.js"></script>
<script src="libs/gitbook-2.6.7/js/clipboard.min.js"></script>
<script src="libs/gitbook-2.6.7/js/plugin-search.js"></script>
<script src="libs/gitbook-2.6.7/js/plugin-sharing.js"></script>
<script src="libs/gitbook-2.6.7/js/plugin-fontsettings.js"></script>
<script src="libs/gitbook-2.6.7/js/plugin-bookdown.js"></script>
<script src="libs/gitbook-2.6.7/js/jquery.highlight.js"></script>
<script src="libs/gitbook-2.6.7/js/plugin-clipboard.js"></script>
<script>
gitbook.require(["gitbook"], function(gitbook) {
gitbook.start({
"sharing": {
"github": false,
"facebook": true,
"twitter": true,
"linkedin": false,
"weibo": false,
"instapaper": false,
"vk": false,
"all": ["facebook", "twitter", "linkedin", "weibo", "instapaper"]
},
"fontsettings": {
"theme": "white",
"family": "sans",
"size": 2
},
"edit": {
"link": null,
"text": null
},
"history": {
"link": null,
"text": null
},
"view": {
"link": null,
"text": null
},
"download": ["ggVennDiagramPaper"],
"toc": {
"collapse": "subsection"
}
});
});
</script>

<!-- dynamically load mathjax for compatibility with self-contained -->
<script>
  (function () {
    var script = document.createElement("script");
    script.type = "text/javascript";
    var src = "true";
    if (src === "" || src === "true") src = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-MML-AM_CHTML";
    if (location.protocol !== "file:")
      if (/^https?:/.test(src))
        src = src.replace(/^https?:/, '');
    script.src = src;
    document.getElementsByTagName("head")[0].appendChild(script);
  })();
</script>
</body>

</html>
